package com.kits.store.ui.kits

import android.content.ContentValues
import android.content.Context
import android.os.Build
import android.provider.MediaStore
import androidx.annotation.RequiresApi

/**
 *  val mimeTypeMap = MimeTypeMap.getSingleton();
 *
 *  意味这通过MediaStore 只能访问 Downloads文件夹
 */

class FileStorage {

    /**
     * 3. 非标准路径，非标准文件(具体操作分为增删改查)
     */
    fun standFile(context: Context){
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            addDownloadFile(context,ContentValues())
        }
    }

    // 新增一个文件
    @RequiresApi(Build.VERSION_CODES.Q)
    private fun addDownloadFile(context: Context, contentValues: ContentValues){
        val values = ContentValues().apply {
            put(MediaStore.Downloads.DISPLAY_NAME, "SimpleText.txt")
            put(MediaStore.Downloads.MIME_TYPE, "text/plain")
            // 只能是 Download
            put(MediaStore.Downloads.RELATIVE_PATH, "Download/kk/")
        }
        val insertUri = context?.contentResolver?.insert(MediaStore.Downloads.EXTERNAL_CONTENT_URI,values)
        println("插入文件uri == $insertUri")
        insertUri?.let {
            context.contentResolver?.openOutputStream(it)
        }?.let {
            println("写入文件？？？")
            it.write("简单的写入文件好不咯\n".toByteArray())
            it.close()
        }
    }

    private fun addFile(context: Context, contentValues: ContentValues){
        contentValues.apply {
            //put(MediaStore.Files.DISPLAY_NAME, "SimpleText.txt")
        }
    }

    @RequiresApi(Build.VERSION_CODES.Q)
    fun saveFile(context: Context){
        val values = ContentValues().apply{
            put(MediaStore.Files.FileColumns.DISPLAY_NAME,"简单文本.txt")
            put(MediaStore.Files.FileColumns.MIME_TYPE, "text/plain")
            put(MediaStore.Files.FileColumns.RELATIVE_PATH,"Documents/kkk")
        }
        val insertUri = context.contentResolver?.insert(MediaStore.Files.getContentUri("external"),values)
        println("插入文件uri == $insertUri")
        insertUri?.let {
            context.contentResolver?.openOutputStream(it)
        }?.let {
            println("写入文件？？？")
            it.write("简单的写入文件好不咯====\n".toByteArray())
            it.close()
        }

    }
}